package core;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Hashtable;

import time.Heure;

import map.Airport;

import core.vols.VolCommercial;
import core.vols.VolInstance;
import core.vols.VolPlanifie;

public class PlanDeVol {
	
	private Hashtable<Integer, VolInstance> tableVol;
	private ArrayList<VolInstance> listeVol;
	private Avion avion;
	
	/**
	 * @param listeVol
	 */
	public PlanDeVol(ArrayList<VolInstance> listeVol) {
		super();
		this.listeVol = listeVol;
		tableVol = new Hashtable<Integer, VolInstance>();
		majTable();
	}
	
	public PlanDeVol() {
		super();
		listeVol = new ArrayList<VolInstance>();
		tableVol = new Hashtable<Integer, VolInstance>();
	}
	
	public void generate(ArrayList<Airport> aeroports) { /*TODO: Rendre dynamique*/
		try {
			Heure hDepart = new Heure(10);
			Heure duree = new Heure(2);
			Heure tempsTransit = new Heure(0,30);
			DateFormat format = new SimpleDateFormat ("dd/MM/yyyy");	
			Date myDate = format.parse("25/05/2011");
			int numero = 1;
			for(int i=0;i<aeroports.size()-1;i++) {
				VolCommercial volc = new VolCommercial();
				VolInstance v = new VolInstance(aeroports.get(i), aeroports.get(i+1), hDepart, duree, myDate, avion, numero, volc);
				listeVol.add(v);
				numero++;
				hDepart.addDuree(tempsTransit);
			}
			majTable();
		} catch (Exception e) {
			
		}
	}
	
	private void majTable() {
		if(!tableVol.isEmpty()) tableVol.clear();
		for(int i=0;i<listeVol.size();i++) {
			tableVol.put(listeVol.get(i).getNumero(), listeVol.get(i));
		}
	}
	
	
}
